#coding:gbk

from sct import *
from smartcard import *

def main():
    KEY = b("0123456789ABCDEF1111111111111111")
    P = b("F9 D1 D8 0D 7D 7D E2 71 E5 CF F0 D7 D5 2F B3 24 D1 0C 1C FC A0 09 1F 36 57 DF 6F AB 1A 2D 30 C4 67 95 F3 BC E6 5E 1C 24 71 C6 1C FB 28 7B 25 3C 45 BE 41 AC E3 DE 67 A5 C2 BB 1E B5 DF FE 8C 99")
    Q = b("F7 7F DA 6A 79 C2 A8 C0 6F C9 8E 47 CB C4 28 14 AC 38 A2 F8 8D 57 EF A5 80 AF 79 C3 F3 80 AC F5 19 4F 2D 64 29 83 85 D8 90 02 20 FB 9C 9C 8D FC 9E EF B7 C8 36 D1 BE 81 04 43 36 16 CC BF DA AB")

    #P = b("E3 91 50 25 ED 6A 10 D7 65 6C 92 AE 24 A6 95 07 8C C6 D0 AC 16 6F 8C A9 7B F0 50 21 2D 07 F4 E0 96 96 3E 72 76 3C 37 24 9F 9F 69 D5 DD B2 AD A1 21 79 9A 8F 3A 44 1B 36 87 A6 BC 41 D5 69 A7 D8")
    #Q = b("77 83 8A 86 BE F0 5A E3 4D 55 64 AF C9 A7 51 1F B9 A7 05 BC DA F6 D3 7A 2A 3E 32 36 72 45 BB 15 CC 37 EE D4 DB FD 24 42 88 E9 8F 62 C1 AE 43 8F 56 D7 80 1D E9 D7 0A 59 6C 75 56 C1 5C 5C 1B 24 ")

    P = b("C0 32 B5 AD 54 7E 8D 48 0D 1B 83 8F 76 BC A3 86 84 E3 AE FC 0F CB 29 20 CA DA 33 30 13 5F E8 13 91 9D C0 E5 1B 4E 2D 28 69 B0 B7 DF 6D 5B 66 F1 3E 14 EE 4D DF 17 6E A9 F1 A1 D9 04 00 C1 31 99")
    Q = b("D0 1D 85 03 16 E9 3F EE AC E6 1B CB 32 D2 C6 AE 46 F2 CC FF 93 B6 8E 2B 17 B0 ED F5 B4 E4 E2 84 02 67 88 18 51 C7 06 FD AD 22 C9 E0 F4 8F 8E 3A 81 5A 39 14 10 C8 3F 27 78 2C 1D 2C 11 FF BD 7F")

    print mplib_is_prime(P)
    print mplib_is_prime(Q)

    E = b("03")
    P1= mplib_sub_d(P, 1)
    Q1 = mplib_sub_d(Q, 1)
    FI = mplib_mul(P1, Q1)
    D = mplib_inv_mod(E, FI)
    DP = mplib_mod(D, P1)
    DQ = mplib_mod(D, Q1)
    QINV = mplib_inv_mod(Q, P)
    PINV = mplib_inv_mod(P, Q)

    mplib_dump(P, 'P')
    print s(P)
    print s(Q)
    mplib_dump(Q, 'Q')
    mplib_dump(FI, 'FI')
    mplib_dump(D, 'D')
    mplib_dump(DP, 'DP')
    mplib_dump(DQ, 'DQ')
    mplib_dump(QINV, 'QINV')
    mplib_dump(PINV, 'PINV')

main()

